package main

import "fmt"

//切片作为函数参数
func demo(s []int) {
	fmt.Println(s)
	s[0] = 123
	fmt.Println(s)

}

//切片作为函数函数    返回值
func demo1(a []int) []int {
	a = append(a, 1, 2, 3, 4, 45)
	fmt.Println(a)
	return a
}
func main() {
	//切片名本身就是个地址
	//所以传递方式为地址传递/引用传递
	a := []int{1, 3, 2, 5, 8}
	fmt.Printf("%p\n a=", a)
	//实参传递给形参的是地址
	//指向同一内存地址，操作的是同一内存的数据
	demo(a)
	fmt.Printf("%p\n demo=", demo)
	a1 := []int{1, 2, 3, 4}
	demo1(a1)
	fmt.Printf("%p\n demo1=", demo1)

}
